├LOSE YOUR EYES AND THINK OF ALL THE TIMES YOU WANTED TO PRINT SOMETHING UPSIDE DOWN. ╘HE WISH IS GRANTED. ╘HIS PROGRAM IS A BUILDING BLOCK TO DO JUST THAT.
╔N ADDITION, THIS SECTION FURTHER EXPLORES INNER DEPTHS OF THE MACHINE AND PROVIDES MEANS OF EXPERIMENTING FOR THE PURPOSE OF LEARNING.
// PRG: FLIP //
Ç*FP8
*** ╓┴╥╔┴┬╠┼╙ ***
┴─ ADDRESS OF OUR CHARACTER SET
┴┴ ADDRESS OF A CHANGED CHARACTER
╩ COUNTER FOR VARIOUS THINGS
╔$ KEYBOARD INPUT
┴ SAME THING IN ┴╙├╔╔ CODE
┼╥ ERROR NUMBER
*** ╔╬╙╘╥╒├╘╔╧╬╙ ***
╘HE CODE IS RELATED TO THE ╬┼╫ ├╚┴╥ PROGRAM SHOWN EARLIER. ┘OU WILL NEED TO TRANSFER THE CHARACTERS FROM ONE PLACE TO ANOTHER USING THE BUILT-IN MACHINE LANGUAGE MONITOR. ┴ REMINDER ABOUT HAVING TO TALK WITH THE MONITOR IS IN THE FIRST ╥┼═ LINE. ╔F YOU HAVEN'T READ THE ╬┼╫ ├╚┴╥ SECTION AND NEED INSTRUCTIONS, DO SO NOW.
╔N LINE 160 TYPE ├╠┼┴╥-THE-SCREEN CHARACTER AND ONE CURSOR DOWN. IN LINE 190 TYPE ╚╧═┼ AND FOUR CURSOR-DOWN CHARACTERS, FOLLOWED BY THE THINGS YOU SEE AND THREE SPACES.
╘O WORK THE PROGRAM, ANSWER THE QUESTION: WHICH LETTER OR NUMBER DO YOU WANT TO SEE-UPSIDE DOWN. ╘O PERMIT YOU AN EASY EXIT OUT OF ALL THIS TROUBLE, IF YOU TYPE A CHARACTER THAT IS NOT ON THE LIST IN QUOTES IN LINE 160 THE PROGRAM QUITS AND EVERYTHING IS RESET BACK TO NORMAL.
╧THERWISE THE CHARACTERS KEEP TUMBLING UNTIL YOU PRESS ANY KEY, WHICH GETS YOU BACK TO THE START - THE PROMPT FOR THE NEXT LETTER TO INVERT.
*** ─┼╘┴╔╠╙ ***
╠INES 170-180 LIST THE CHARACTERS ON TOP OF THE SCREEN. ╠INES 200-210 CHECK IF YOUR CHOSEN CHARACTER IS LEGAL. ╠INE 220 CALCULATES THE ADDRESS OF THE CHARACTER USING THE SCREEN CODES FOR LETTERS (1-26) AND NUMBERS (48-57).
╚ERE WE GO. ╘HERE IS A LOOP, WITH INDEX ╔, THAT SPANS LINES 230-260. ╔T PROCESSES EACH CHARACTER TWICE. ╘HE FIRST THING THAT HAPPENS IS IN A LITTLE ╩-LOOP IN LINE 240: WE REMEMBER WHAT THE ORIGINAL VALUES WERE IN AN ARRAY ╓. ╘HEN ANOTHER ╩-LOOP PUTS THOSE VALUES IN THE BACKWARD ORDER. ╞INALLY, A LITTLE ╦-LOOP DELAYS FOR SOME ONE HUNDRED UNITS. ╧N THE SECOND PASS THROUGH THE ╔-LOOP EVERYTHING IS RESTORED BACK TO NORMAL.
╫HEN THAT'S DONE, IF YOU HAVEN'T PRESSED ANY KEYS, WE KEEP FLIPPING. ╔F YOU DID, WE GO BACK FOR MORE INPUT.
*** ╨╥╧╩┼├╘╙ ***
╔T'S NICE TO LEAVE THE HOUSE IN ORDER WHEN YOU HAVE MADE A MESS, BUT THAT'S NOT WHAT YOU MAY HAVE IN MIND. ╙O, IF YOU'RE WILLING TO TAKE SOME RISKS IN EXPERIMENTING WITH THE IDEA, YOU COULD REDEFINE ALL THE CHARACTERS AND NOT RESTORE THEM BACK TO THE ORIGINAL. ╘HEN YOU COULD TRY TO LEARN TYPING UPSIDE DOWN, WHICH IS A GREAT AND USEFUL SKILL TO HAVE. ╬EWSPAPERS NEED THIS SORT OF PEOPLE.
┘OU COULD GO AFTER REDESIGNING SOME OF THE GRAPHIC CHARACTERS ON THE KEYBOARD. ┘OU WILL NEED TO SWITCH TO GRAPHIC MODE. ┘OU COULD THEN USE SEVERAL CHARACTERS FOR NEAT VISUAL DISPLAYS OF CHARACTERS THAT DON'T EVEN EXIST ON THE KEYBOARD. ─O THAT BY FLIPPING BETWEEN THEM VERY, VERY FAST. ╚OPE YOU LIKE THE SHOW.
╔F YOU FORGOT WHAT THE MAGIC NUMBERS OF CHARACTERS ON THE SCREEN ARE, YOU CAN LOOK IN THE ╬┼╫ ├╚┴╥ PROGRAM.
*** ┴╠╘┼╥╬┴╘╔╓┼╙ ╞╧╥ ╨╠╒╙ 4 ***
╘HIS MATERIAL IS FOR FUTURE REFERENCE. ╔T'S USEFUL, BUT A BIT MORE ADVANCED.
╔N THE PREVIOUS VERSION WE MOVED THE CHARACTERS FROM HEX $─000 TO $3000. ╔F YOU HAVE A ╨╠╒╙ 4 MACHINE YOU COULD MOVE THEM TO, FOR INSTANCE, HEX $7000. ╠ET'S DO IT. ╞OLLOW THE SAME ═ONITOR INSTRUCTIONS, BUT INSTEAD OF TYPING 3000 AS THE DESTINATION ADDRESS, TYPE 7000.
┴S WAS THE CASE IN ╬┼╫ ├╚┴╥ PROGRAM, LINE 130 SIMPLY TELLS THE COMPUTER TO NOT ALLOW ┬┴╙╔├ TO WRITE OVER THE AREA WHERE WE PUT THE CHARACTERS. ┘OU MAY CHANGE THE "48" TO "112" IN LINE 130, ┴─ IN LINE 140 TO "7*4096+4*256" AND THE LAST THING IN ─┼├ FROM "35" TO "75" IN LINE 150. ┘OU DON'T HAVE TO DO IT, BUT THIS SHOWS HOW YOU CAN PLACE CHARACTERS IN A DIFFERENT PLACE WHEN THE COMPUTER IS LARGER.
╘HE ADVANTAGE IS THAT THIS WILL GIVE YOU LOTS MORE MEMORY TO PLAY WITH, 16╦, TO BE EXACT, AND YOU WILL BE ABLE TO COMBINE GRAPHIC MODES WITH REDEFINED CHARACTERS.
╘HE $7000 NUMBER IS ARBITRARY, THE CHARACTERS CAN GO ANYPLACE, BUT THEY ARE MOST EASILY ACCESSED FROM ┬┴╙╔├ WHEN THEIR ADDRESS IS UNDER $8000 (DECIMAL 32768).
╔F YOU ARE CURIOUS ABOUT THE INSIDES OF A COMPUTER, YOU CAN DO SOMETHING FANTASTIC. ┴FTER YOU HAVE TOLD THE CHARACTERS TO LIVE AT HEX $7000, GET INTO A ╟╥┴╨╚╔├1 MODE, BUT ─╧ ╬╧╘ ╘┘╨┼ "╟╥┴╨╚╔├1,1" . ╔NSTEAD, TYPE ╟╥┴╨╚╔├1. ╘HE GRAPHIC SCREEN WILL NOT CLEAR. ┘OU WILL BE ABLE TO SEE ALL SORTS OF OLD COMPUTER GARBAGE WHERE THE HIGH-RESOLUTION PICTURE HAS NOW PLACED ITSELF. ╔T WILL BE THE CHARACTER SET THAT YOU HAVE MOVED TO THE HEX $3000 AREA. ┼NJOY THE SIGHT AND THINK ABOUT ALL THE NEAT THINGS YOU COULD DO KNOWING THIS NEW INFORMATION.
╘HIS MATERIAL MAY BE DIFFICULT AT THE MOMENT. ╔T IS BEGINNING TO BORDER ON LEARNING ABOUT MEMORY MANAGEMENT, MACHINE CODE AND OTHER SUCH THINGS. ╔F THE CURIOSITY IS GETTING YOU, READ UP ON IT. ╥EAD MEMORY MAPS PUBLISHED IN MAGAZINES SUCH AS THE ╘RANSACTOR. ╘HERE IS EVEN A LITTLE MEMORY MAP IN THE MANUAL. ╥EAD ╩IM ┬UTTERFIELD'S BOOK, HIS MEMORY MAPS ARE THE BEST, AND THE BOOK EXPLAINS ABOUT MATTERS RELATED TO WHAT WE HAVE JUST LOOKED AT.
*** ╠╧┴─╔╬╟ ╘╚┼ ├╚┴╥┴├╘┼╥╙ ***
╘HE METHOD OF GETTING AT THE CHARACTERS IN ╥┴═ WE HAVE USED SO FAR IS JUST FINE FOR EXPLORATION. ╔T CANNOT BE USED IN A FINISHED PROGRAM (WHATEVER THAT IS!) AS YOU CAN'T REQUIRE THE USERS OF YOUR PROGRAMS TO HAVE TO USE THE ═╧╬╔╘╧╥. ┘OU COULD USE THE ╨┼┼╦ TRICK YOU HAVE SEEN BEFORE, BUT IT IS PAINFULLY SLOW. ╘HERE IT A BETTER WAY:
╧NCE YOU HAVE RUN A PROGRAM WITH DEFINED CHARACTERS, ENTER THE MONITOR AND SAVE THEM. ╙AVING INSTRUCTIONS ARE IN THE SECTION ABOUT GENERAL SAVING AND LOADING OF ANY MEMORY. ╫HEN THE CHARACTERS ARE NEEDED IN THE FUTURE, LOAD THEM FROM WITHIN A RUNNING PROGRAM, FOLLOWING THE SUGGESTIONS ALSO IN THAT SECTION.
╔T MAY SEEM AT FIRST LIKE A LOT OF HASSLE, BUT WHEN YOU DO IT SEVERAL TIMES IT BECOMES SECOND NATURE.
╘HE FINAL STEP IS TO SWITCH THE CHARACTERS IN AND OUT, OF COURSE, AS WE HAVE DONE ABOVE. ╩UST BORROW THE RELEVANT CODE LINES FROM THIS PROGRAM AND YOU'RE ON YOUR WAY TO FANCY GRAPHICS.